using Process.Domain.DTO.InputDTO;
using Process.Domain.DTO.OutDTO;
using Process.Domain.Entities;
using Process.Result;

namespace Process.Application.Services
{
    public interface IOperationAppService<T> where T : BaseEntity
    {
        /// <summary>
        /// 添加工艺
        /// </summary>
        /// <param name="operationDTO">工艺数据传输对象</param>
        /// <returns>API结果</returns>
        ApiResult<int> AddOperation(AddOperationDTO operationDTO);

        /// <summary>
        /// 获取分页数据
        /// </summary>
        /// <param name="input">参数</param>
        /// <returns>封装响应类</returns>
        Apipaging<PagingOperationDTO> PagingOperation(PagingOperationInput input);

        /// <summary>
        /// 删除工艺
        /// </summary>
        /// <param name="Id">工艺ID</param>
        /// <returns>封装响应类</returns>
        ApiResult<int> DeleteOperation(long Id);

        /// <summary>
        /// 修改工艺
        /// </summary>
        /// <param name="input">参数</param>
        /// <returns>封装响应类</returns>
        ApiResult<int> UpdateOperation(UpdateOperationInput input);

        /// <summary>
        /// 获取分页数据
        /// </summary>
        /// <param name="input">参数</param>
        /// <returns>封装响应类</returns>
       ApiResult<List<ShowOperationDTO>> ShowOperation();

    }
} 